package cn.csc.module.order.controller.app.order.vo;

import cn.csc.module.shoppingCard.api.card.dto.CardRespDTO;
import cn.csc.module.shoppingCard.api.transaction.dto.CardTransactionCreateReqDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;

/**
 * 订单参数
 *
 * @author
 * @date 2020-12-04 11:27:35
 */
@Data
public class AppOrderCreateReqVO {

    @ApiModelProperty(value = "订单Id", required = true)
    private BigInteger orderId;

    @ApiModelProperty(value = "配送类型3：无需快递" )
    private Integer dvyType;

    @ApiModelProperty(value = "用户订单地址id" )
    private BigInteger orderAddrId;

    @ApiModelProperty(value = "客户编号", required = true)
    private BigInteger userId;

    @ApiModelProperty(value = "客户微信昵称", required = true)
    private String  nickName;

    @ApiModelProperty(value = "客户手机号", required = true)
    private String  memberPhone;

    @ApiModelProperty(value = "总值金额", required = true)
    private BigDecimal total;

    @ApiModelProperty(value = "订单商品总数")
    @NotNull(message = "订单商品总数不能为空")
    private Integer allCount;

    @ApiModelProperty(value = "订单项")
    @NotNull(message = "订单项不能为空")
    List<AppOrderItemCreateReqVO> orderItems;

    @ApiModelProperty(value = "购物车主键id")
    List<Long> shopCartId;

    @ApiModelProperty(value = "订单类型")
    private Integer orderType;

    @ApiModelProperty(value = "支付类型，0微信支付、1购物卡支付、2结合支付")
    private Integer payType;
    @ApiModelProperty(value = "购物卡id")
    private List<BigInteger> cardIds;

    @ApiModelProperty(value = "总值金额", required = true)
    private BigDecimal actualAmount;

    @ApiModelProperty(value = "使用的购物列表信息，用于购物卡记录", required = true)
    List<CardRespDTO> cardList;

}
